package com.ruoyi.delivery.mapper;

import com.ruoyi.delivery.domain.DelOperatorTransportDetail;
import com.ruoyi.delivery.domain.DelTransportDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 运输订单明细 数据层
 *
 * @author skye
 */
public interface DelOperatorTransportDetailMapper {

    /**
     * 根据 trackingNumber 获取所有运单明细
     * @param trackingNumber 运单号
     * @return 运单明细列表
     */
    List<DelOperatorTransportDetail> getDetailsByTrackingNumber(@Param("trackingNumber") String trackingNumber);
    List<DelOperatorTransportDetail> getDetailsByOrderNumber(@Param("orderNumber") String orderNumber);

    /**
     * 插入运单明细
     * @param detail 运单明细对象
     * @return 影响的行数
     */
    int insertOperatorTransportDetail(DelOperatorTransportDetail detail);

    /**
     * 删除运单明细
     * @param transportDetailId 运单明细编号
     * @return 影响的行数
     */
    int deleteOperatorTransportDetail(@Param("transportDetailId") String transportDetailId);

    /**
     * 修改运单明细
     * @param detail 运单明细对象
     * @return 影响的行数
     */
    int updateOperatorTransportDetail(DelOperatorTransportDetail detail);

    /**
     * 筛选运单明细
     * @param trackingNumber 运输单号
     * @param productName 商品名称
     * @param orderNumber 订单号
     * @param productBatch 商品批次
     * @return 符合条件的运单明细列表
     */
    List<DelOperatorTransportDetail> searchOperatorTransportDetails (
            @Param("trackingNumber") String trackingNumber,
            @Param("productName") String productName,
            @Param("orderNumber") String orderNumber,
            @Param("productBatch") String productBatch
    );
}
